﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace 委托和事件
{
    public class UserLogic
    {
        // 1 定义事件  2 触发事件  3 注册事件  4 处理事件

        public delegate void DelegateLws();//1

        public event DelegateLws EventLws;//2（事件必须是委托类型的）
        public void Pay()
        {
            bool succ = true;//此处省去业务逻辑.....
            if (succ)
            {
                EventLws();
                //3 则触发事件
            }
        }

    }

    public class MyController
    {

        public void MyViewContent()
        {
            UserLogic user = new UserLogic();
            user.EventLws += new UserLogic.DelegateLws(MyMethod);
            //4  把事件绑定了这个方法，表示触发事件则会执行MyMethod只能是+=而不能是....=...+


            //事件的理解，参与过设计模式，或者大型软件的设计很容易理解
            //设计模式：http://blog.jobbole.com/78138/
        }
        //userLogic+=new UserLogic.DelegateLws(MyMethod);

        public void MyMethod()
        {

        }
    }
}